import cv2 as cv
import numpy as np

# ---------------------均值滤波------------
# 均值滤波是一种简单有效的图像平滑方法，它对图像中的每个像素点的邻域内的像素值求平均值，并将该平均值赋给该像素点的灰度值。
# 均值滤波的特点是平滑性强，对噪声不敏感，且对椒盐噪声有很好的抑制作用。
# 均值滤波后图像便模糊，因为像素点间的值更加平滑

img = cv.imread('2.jpeg')

average = cv.blur(img,(5,5)) # 图像，卷积核大小

# --------------------------高斯滤波----------------------
# 高斯滤波是一种非线性滤波器，它对图像中的每个像素点的邻域内的像素值进行加权平均，权重由高斯函数决定。
# 高斯滤波的特点是平滑性强，对噪声有很好的抑制作用，且对椒盐噪声有很好的抑制作用。
# 高斯滤波后图像便模糊，因为像素点间的值更加平滑

gaussian = cv.GaussianBlur(img,(21,21),0) 
#参数： 图像，卷积核大小(奇数，核越大，模糊程度越高)，标准差（0表示根据卷积核大小自动计算。
# 值越大，也就是周围像素权重越大，模糊程度越高）

# --------------------------中值滤波-------------------------
# 中值滤波是一种非线性滤波器，它对图像中的每个像素点的邻域内的像素值进行排序，并取中间值赋给该像素点的灰度值。
Median = cv.medianBlur(img,5) # 图像，卷积核大小(奇数，核越大，模糊程度越高)

cv.imshow('Original',img)
cv.imshow('average',average) 
cv.imshow('Gaussian',gaussian)
cv.imshow('Median',Median)
cv.waitKey(0)
cv.destroyAllWindows()




